import request from "@/util/request";

/**
 * 上传公司头像
 * @param {File} file - 要上传的文件
 * @returns {Promise<Object>} - 返回上传结果
 */
export const uploadCompanyAvatar = async (file) => {
  const formData = new FormData();
  formData.append('file', file);

  return request.post('/recruiter/company/uploadCompanyAvatar', formData, {
    headers: {
      "Content-Type": "multipart/form-data",
    },
  })
}

/**
 * 上传个人头像
 * @param {File} file - 要上传的文件
 * @returns {Promise<Object>} - 返回上传结果
 */

export const uploadAvatar = async (file) => {
  const formData = new FormData();
  formData.append('file', file);

  return request.post('/recruiter/company/uploadAvatar', formData, {
    headers: {
      "Content-Type": "multipart/form-data",
    },
  })
}

/**
 * 获取指定公司招聘者基本信息
 * @returns {object} 响应体
 * @property {object} data - 数据主体
 * @property {integer} data.userId - 用户ID
 * @property {string} data.name - 用户姓名
 * @property {string} data.avatar - 头像URL
 * @property {integer} data.age - 年龄
 * @property {string} data.birthDate - 出生日期（ISO格式）
 * @property {string} data.phone - 手机号码
 * @property {string} data.gender - 性别
 * @property {string} data.location - 所在地
 * @property {string} data.type - 用户类型（示例值："BOSS"）
 * @property {string} data.role - 角色描述
 * @property {string} data.companyName - 公司名称
 * @property {string} data.companyAvatar - 公司logo URL
 * @property {string} data.companyLocation - 公司所在地
 * @property {string} data.companyIntroduction - 公司简介
 * @property {string} data.workDayStartTime - 工作日开始时间（ISO格式）
 * @property {string} data.workDayEndTime - 工作日结束时间（ISO格式）
 * @property {string} data.companyIndustry - 公司行业
 * @property {string} data.createDate - 账号创建时间（ISO格式）
 * @property {string} data.workTimeType - 工作时间类型（示例值："SINGLE_REST"）
 * @property {integer} code - 响应状态码（0表示成功）
 * @property {string} msg - 状态描述信息
 */
export const getRecruiterBasicMessage = (userId) => {
  return request.post('/recruiter/company/getRecruiterBasicMessage', null, { params: userId })
}

/**
 * 编辑公司基本信息
 * @param {Object}data - 请求参数
 * @param {string}data.companyName - 公司名称
 * @param {string}data.companyAddress - 公司地址
 * @param {string}data.companyIndustry - 公司行业
 * @param {string}data.companyScale - 公司规模
 * @param {string}data.companyDescription - 公司描述
 * @returns {Promise<Object>} - 返回编辑结果
 */
export const editCompanyBasicMessage = (data) => {
  return request.post('/recruiter/company/editCompanyBasicMessage', data, {
    headers: {
      "Content-Type": "application/json",
    },
  });
};

//编辑公司关键信息
export const editCompanyCoreMessage = (params) => {
  return request.post('/recruiter/company/editCompanyCoreMessage',
    null
    , {
      params: {
        companyName: params.companyName,
        createDate: params.createDate,
      },
    }
  )
}

//编辑基本信息
export const editBasicMessage = (data) => {
  return request.post('/recruiter/company/editBasicMessage', data, {
    headers: {
      "Content-Type": "application/json",
    },
  })
}

/**
 * 增设员工
 * @param {Object} data - 包含员工信息的数据
 * @param {string} data.password - 员工密码
 * @param {string} data.phone - 员工手机号
 * @param {number} data.role - 员工角色（1-管理员，2-普通员工）
 * @returns {Promise<Object>} - 返回增设结果
 */
export const createEmployee = (data) => {
  return request.post('/recruiter/company/createEmployee', data);
};

//员工列表
export const getCompanyEmployees = () => {
  return request.get('/recruiter/company/getCompanyEmployees')
}

//删除员工
export const deleteEmployee = (deleteUserId) => {
  return request.delete('/recruiter/company/deleteEmployee', { params: { deleteUserId } })
}